package com.qunar.dyds.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.qunar.common.admin.service.AbstractService;
import com.qunar.dyds.entity.Report;

/**
 * 投诉服务类
 */
@Service
public class ReportService extends AbstractService {

    /**
     * 添加投诉
     * 
     * @param report 投诉信息
     * @return 结果数
     */
    @Transactional
    public int add(Report report) {

        logger.debug("add Start.");

        int ret = updateDAO.execute("v_report.insert", report);

        logger.debug("add Start.");

        return ret;
    }

    /**
     * 查询投诉信息
     * 
     * @param id 投诉ID
     * @return 投诉信息
     */
    public Report get(int id) {

        logger.debug("get Start.");

        Map<String, Object> bindParams = new HashMap<String, Object>(1);
        bindParams.put("id", id);

        Report report = queryDAO.executeForObject("v_report.select", bindParams, Report.class);

        logger.debug("get End.");

        return report;
    }

    /**
     * 查询符合条件记录数
     * 
     * @param cond 查询条件
     * @return 记录数
     */
    public int getCount(Map<String, Object> cond) {

        logger.debug("getCount Start.");

        int cnt = queryDAO.executeForObject("v_report.selectCount", cond, Integer.class);

        logger.debug("getCount End.");

        return cnt;
    }

    /**
     * 查询符合条件列表
     * 
     * @param cond 查询条件
     * @param startIndex 开始索引数
     * @param limit 查询条数
     * @return 结果列表
     */
    public List<Report> search(Map<String, Object> cond, int startIndex, int limit) {

        logger.debug("search Start.");

        List<Report> list = queryDAO.executeForObjectList("v_report.select", cond, startIndex, limit);

        logger.debug("search End");

        return list;
    }

    /**
     * 查询符合条件列表
     * 
     * @param cond 查询条件
     * @return 结果列表
     */
    public List<Report> search(Map<String, Object> cond) {

        logger.debug("search Start.");

        List<Report> list = queryDAO.executeForObjectList("v_report.select", cond);

        logger.debug("search End");

        return list;
    }

    /**
     * 更新投诉
     * 
     * @param report 投诉信息
     * @return 结果数
     */
    @Transactional
    public int update(Report report) {

        logger.debug("update Start.");

        int ret = updateDAO.execute("v_report.update", report);

        logger.debug("update End.");

        return ret;
    }

    /*
    @Transactional
    public int delete(int id) {

        logger.debug("delete Start.");

        int ret = updateDAO.execute("v_report.delete", id);

        logger.debug("delete End.");

        return ret;
    }*/
}
